/**
 * Copyright &copy; 2013-2016 山东易科德软件有限公司 All rights reserved.
 */
package cn.net.ecode.modules.cms.service;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import cn.net.ecode.common.config.Global;
import cn.net.ecode.common.service.BaseService;
import cn.net.ecode.common.utils.DateUtils;
import cn.net.ecode.common.utils.StringUtils;
import cn.net.ecode.modules.cms.dao.CmsStatsDao;
import cn.net.ecode.modules.cms.entity.Category;
import cn.net.ecode.modules.cms.entity.Site;
import cn.net.ecode.modules.sys.utils.CorpUtils;

/**
 * 统计Service
 * @author ThinkGem
 * @version 2015-12-30
 */
@Service
@Transactional(readOnly = true)
public class CmsStatsService extends BaseService {

	@Autowired
	private CmsStatsDao cmsStatsDao;
	
	public List<Map<String, Object>> article(Map<String, Object> paramMap) {
		
		// 只查询当前站点
		paramMap.put("siteCode", Site.getCurrentSiteCode());
		
		// 根据父节点查询子节点
		String parentCode = StringUtils.toString(paramMap.get("parentCode"));
		if (StringUtils.isBlank(parentCode)){
			paramMap.put("parentCode", Category.ROOT_CODE);
		}
		
		// 将字符串转换为日期类型，并为了方便进行按天查询，设置一天的开始和结束时间（如：开始为一天的0点0分，结束为一天的23点59分）
		paramMap.put("beginVisitTime", DateUtils.getOfDayFirst(DateUtils.parseDate(paramMap.get("beginVisitTime"))));
		paramMap.put("endVisitTime", DateUtils.getOfDayLast(DateUtils.parseDate(paramMap.get("endVisitTime"))));
		
		// 设置必要的附加信息
		paramMap.put("corpCode", CorpUtils.getCurrentCorpCode());
		paramMap.put("corpName", CorpUtils.getCurrentCorpName());
		paramMap.put("global", Global.getInstance());
		paramMap.put("jdbcName", Global.getJdbcType());
		paramMap.put("dbName", Global.getDbName());
		
		List<Map<String, Object>> list = cmsStatsDao.article(paramMap);
		return list;
	}

}
